Computor organ using parallel processing

ABSTRACT

Parallel processing is used in a computor organ of the type wherein musical notes are produced by computing at regular time intervals the amplitudes at successive points of a musical waveshape, and converting the amplitudes to tones as the computations are carried out. Each amplitude is evaluated by concurrently calculating in parallel channels different subsets of the Fourier components for the same point, then combining the components to obtain the waveshape amplitude. In a typical embodiment, low order harmonic components are calculated in one channel and high order harmonics in another channel; in another embodiment, odd and even harmonics are calculated in separate, parallel channels. A recirculating shift register, shifted in unison with successive component calculations, advantageously stores the harmonic coefficients used in the amplitude calculations.

United States Patent [191 Deutsch 51 May 7, 1974 [54] COMPUTOR ORGAN USING PARALLEL 3,763,364 10/1973 Deutsch et a1. 84/1.03 x

. PROCESSING [75] Inventor: Ralph Deutsch, Sherman Oaks, Primary Examirfer Richard Wilkinson; m Asszstant ExammerStanley J. W1tkowsk1 Attorney, Agent, or F irm-F 1am & Flam, Howard A. [73] Assignee: Nippon Gakki Seizo Kabushiki Saber Kai'sha, l-lamamatsu, Japan Filed: Oct. 17, 1972 21 Appl. No.: 298,365

52 us. c1 -84/1.01, 84/103 51 Int. Cl. c1011 1/06, 01011 5/02 [58] Field of Search ..84/1.01, 1.03, 1.11, 1.12, 84/1.19-l.24

[56] References Cited UNITED STATES PATENTS 3,515,792 6/1970 Deutsch 84/1.03

3,610,799 10/1971 Watson 84/].01

3,610,801 10/1971 Fredkin et al. 84/1.03

3,696,201 10/1972 Arsem ct a1. 84/1.0l

3,697,661 10/1972 Deutsch 84/].01

3,639,913 2/1972 Watson 84/1.01 X

3,740,450 6/1973 Deutsch.... 84/124 3.743.755 7/1973 Watson 84/l.0l

3,755,608 8/1973 Deutsch 84/l.0l

Qla.

[5 7] ABSTRACT bodiment, odd and even harmonics are calculated in separate, parallel channels. A recirculating shift register, shifted in unison with successive component calculations, advantageously stores the harmonic coefficients used in the amplitude calculations.

I 10 Claims, 5 Drawing Figures (Fm Q" Sing nc R [f )5 5 LOW ORDER HIGH ORDER HARMONIC HARMONIQ HARMQNIC mGrrAL AMPLITUDE c COEFFICIENT .C CIE T HAQMONIC AMPLITUDE ANALOG MuLTlRuER MEMORY MEMORY MULTIPLE coNvERTER 55b 200. l l 20b 34b MEMORY ADDRESS smusou: TABLE com-RoL SINUSOID TABLE 35 52b 53 MEMgRv ADDREss p j 7 ADDED MEMoRv ADDRESS EcoDER 'DECODER HARMONHIAL INTERVAL [8b alb ADDER GATE 28 MuunRuER i w Q w I E Y Q COUNTER NOTE INTERVAL 43 '2' ADDE d [0/ x (HODLILO N) \25 57 INSTRUMENT FREQUENCY l2 KEYBOARD 5 NUMBER SWITCHES (c MEMORY -49 COMPUTOR ORGAN USING PARALLEL PROCESSING BACKGROUND OF THE INVENTION Field of the Invention Related Applications The present invention is related to the COMPUTOR ORGAN described in the inventors copending U.S. Patent application'Ser. No. 225,883 filed on Feb. 14, 1972.

Description of the Prior Art A unique method of digital waveshape generation in an electronic musical instrument is disclosed in the above mentioned U.S. patent application entitled COMPUTOR ORGAN. Therein, waveshape synthesis is accomplished by computing the sample point amplitudes of a complex waveshape at regular time intervals, and converting these amplitudes to musical notes as the computations are carried out. A discrete Fourier algorithm is implemented to calculate the individual harmonic components at each sample point, using a stored set of harmonic coefficients which characterize the resultant waveshape. The computations are carried out at a constant time rate regardless of the note fundamental frequency.

An objective of using parallel processing in a computor organ of this type is to reduce the computational rate requirements of the system. The waveshape is synthesized in real time. Thus each amplitude calculation must be completed within a fixed time interval t established by the pitch or frequency f of the highest note on the organ keyboard and the number N of amplitude sample points for the highest frequency note. If exactly N sample point amplitudes are computed for that note, the computational time interval t is given by:

All of the Fourier components associated with each amplitude computation must be calculated within the time interval t Thus if W harmonic components are individually, sequentially evaluated for each sample point, each component must be calculated with a time interval t given by:

r z /W For a monophonic instrument, this requires a system computational clock rate f, of: I

f6 we /t.r fH

By way of example, the highest eight-foot pitch on a standard organ keyboard is C which has a fundamental frequency f 2.093 kHz. Although a design choice, the use of 16 harmonics (W 16) is quite satisfactory for producing realistic organ pipe sounds. To accomplish accurate sampled amplitude synthesis of a note containing 16 harmonics, the waveshape should be evaluated at at least 32 sample points per cycle. This criteria will avoid the phenomenon of frequency aliasing which might occur if the system sample rate is less than the Nyquist frequency f which is twice the frequency of the highest harmonic component. If the note C is evaluated at exactly N 32 sample points, the computational time inverval is:

t, l/(32) (2.093 kHz) 1.49 msec Accordingly, for a monophonic instrument having a single processing channel, the system, computational clock rate is:

f (16) (32) (2.093kl-lz) 1.07 MHZ For a polyphonic organ in which K notes may be played at once, the harmonic components of all notes must be evaluated at each sample point, within the time interval t Thus for a polyphonic, single channel in- I strument, the system computational clock rate f,, is given by:

)2 (12) (1.07 MHZ) 12.8 MHz This relatively high computational clock rate may be reduced significantly using parallel processing, and it is the principal objective of the presentinvention to'provide computor organs employing such parallel processing. The reduction in clock rate afforded by such instruments is readily visualized. If half of the harmonic components (i.e., W/2 components) are evaluated in a first processing channel and the other W/2 components are calculated in a second, parallel processing channel, then the computational clock rate is cut in half. In general if P the number of parallel processing channels employed, then for a monophonic organ the computational clock rate f is,given by:

for fc fcn Accordingly, for the above example, if two parallel processing channels are used (P 2), the monophonic and polyphonic (K 12) system computational clock rates fl and f respectively are:

Use of such parallel processing, with the concomitant reduction in computational rate, permits the computor organ more readily to be 'implimented using presently available microelectronic integrated circuits.

SUMMARY OF THE INVENTION The foregoing and other objectivesare achieved by providing a computor organ employing parallel processing. The instrument includes two or more computation channels which concurrently evaluate different subsets of Fourier components. These components are combined to obtain the amplitude values at successive sample points of a musical waveshape. The amplitudes are converted to musical'tones as the computations are carried out in real time.

By employing parallel processing, the system computation clock rate is reduced, even though all Fourier components for each amplitude sample point are computed within a constant time interval. In illustrative two channel embodiments, low and high order harmonic components, or'odd and even harmonics, are calculated concurrently in separate channels. The tonal quality of the synthesized musical sounds is established by a set of harmonic coefficients used in the amplitude calculations. Advantageously, these coefficients are contained in a recirculating shift register which is shifted in unison with the individual Fourier component calculations.-Such a recirculating shift register harmoniccoefficient memory, useful in a parallel processing computor organ, also is disclosed.

BRIEF DESCRIPTION OF'THE DRAWINGS 7 A detailed description of the invention will be made with reference to the accompanying drawings, wherein like numerals designatecorresponding parts in the several figures;

FIG. 1 is an electrical block diagram of a computor organ employing parallel processing, wherein low order harmonic components are calculated in one channel and high order harmonics are evaluated inanother channel. 1 r 1 FIG. 2 is'an electrical block diagram of a computor even harmonic components are calculated respectively in separate parallel channels.

I FIG. 3 is an electrical block diagram showing the use of recirculating shift registers to supply harmonic coefficient values to the'parallel computation channels of a computor organ like that of FIG. 1 or 2.

organ employing parallel processing wherein odd and FIG. 4 is a'simplified electrical logic diagram showing load circuitry useful with the recirculating shift registers of FIG. 3. I

' FIG. 5 is a timing diagram illustrating one mode of operation ofthe system of FIG. 3.

DESCRIPTION OF THE PREFERRED EMBODIMENTS The following detailed description is of the best presently contemplated modes of arrying out the invention. This description is not to be taken in a limiting sense, but is made merely for the purpose of illustrating the general principles of the inventionv since the scope Structural and operational characteristics attributed to forms of the invention first described shall also be attributed to forms later described, unless such characfteristies are obviously inapplicable or unless specific exception is made.

The computor organ 10 of FIG. 1 utilizes parallel processing to produce'via a sound system 1 1 a musical note selected by the keyboard switches 12., This is accomplished by. calculating in parallel computation channels 13a, 13b the discrete Fourier components associated with amplitudes at successive sample points of a waveshape characterizing the selected note, The components are algebraically summed in an accumulator 14 which, at the 'end of each computation time interval t, contains the amplitude at the current sample point. This amplitude is providedvia a gate 15, enabled bythe t, signal on a line 16, to a digital-to-analog converter 17 which supplies to the sound system 1 1 a voltage corresponding to the waveshape amplitude just computed. Computation of the amplitude at the next sample point immediately is initiated, so that the analog voltage supplied fromthe converter 17 comprises a musical waveshape generated in real time.

The period of the computed waveshape, and hence the fundamental frequency of the generated note, is established by a-frequency number R selected by the key board switches 12. A set of suchfrequency numbers corresponding to the notes of theinstrument is stored in a frequency number memory 19. The waveshape it-' self, and hence the tonal quality of the produced musical note, is established by a set of harmonic coefficients C stored in a pair of memories 20a, 20b and used in computing the Fourier components at each sample point.

In the present invention, the waveshape amplitude X, (qR) at each sample point is computed in accordance with the following discrete Fourier representation of a sampled periodic complex waveshape;

computation. This number is a design choice, however,

0f the invention best isdefined by the appended claims. I

the use of 16 harmonics (W 16) is quite satisfactory for synthesizing pipe organ sounds.

In the parallel processing computor organ .10 of FIG.

1, equation 7 is implemented by computing the ampl itude value x, (qR) for each sample point during a time interval t The individual harmonic component amplitudes F"" C,, sin (rr/W) nqR for each of the W'harmonic components are calculated separately. In the embodiment of FIG. 1, the low order harmonic components, for .values n 1,2, W/2 are calculated in the channel 13a and the high order components, for the values n (W/2 I), (W/2 2),...,W are evaluated in' the parallel channel 13b.

The harmonic calculations are carried on concurrently. For example, while the amplitude of the fundasummed by theadder 22 and added to the contents of the accumulator 14. This routine is iterated until all W harmonic components have been calculated. The resultant algebraic sum then contained in the accumulator 14 will correspond to the amplitude for the sample point designated by the value qR. As noted earlier, the waveshape amplitude x, (qR) in the accumulator 14 is gated to the digital-to-analog converter 17 at the end of the computation interval t,. The accumulator 14 then is cleared by the signal on the line 16, and computation of the amplitude at the next sample point immediately is initiated. The value qR is incremented and the W harmonic component amplitudes F are calculatedvfor the sample point designated by the new value of qR. Eventually the entire waveshape will be generated, the sound system ll'reproducing the musical note as the amplitude computations are carried out..

In the system of FIG. 1, a note interval adder contains the value qR identifying the sample point at which the waveshape amplitude currently 'is being evaluated. This value qR is incremented at the beginning of each computation interval t, by'adding the selected frequency number R to the previous contents of the adder 25. The selected value R is supplied to the adder 25 via a gate 26 enabled by the t, signal on the line 16. Preferably the adder 25 is of modulo N.

To calculate the low order harmonic components, the values nqR (for n 1,2,...,W/ 2) are obtained in a harmonic interval adder 27 which is cleared before each amplitude computation cycle. Upon occurrence of the first clock pulse 1 of a new cycle, the current value qR contained in the mode interval adder 25 is entered into the harmonic interval adder 27 via a line 28 and a gate 29. At each subsequent clock pulse t the value qR is added to the previous contents of the adder 27. As a result, the harmonic interval adder 27 will contain the value nqR, where n l,2,...,W/2 for the n'" low order harmonic component currently being evaluated in the channel 13a. Preferably the harmonic interval adder 34 also is of modulo N.

An address decoder 31a accesses from a sinusoid table 32a the value sin (qr/W) nqR corresponding to the harmonic component and is supplied via the line 21a to the adder 22. The appropriate coefficient C, is ac cessed from the low order harmonic coefficient memory 20a by an address control unit 36 advanced by the clock pulses 2 To evaluate the high order harmonic components,

the values (W/2 +n) qR for n 1,2,...W/2 are obtained at successive clock times r Thus the value qR contained in the note interval adder 25 is multiplied by the value W/2 in a multiplier 37. The quotient (W/Z) qR is added to the value nqR present on the line 33 by an adder 38. The sum, present on a line 39, is the value (w/2 q A memory address decoder 31b accesses from a sinusoid table 32b the value sin (qr/W) (W/2 n) qR. That sin value, supplied via a line 34b, is multiplied by the corresponding high order harmonic coefficient C supplied from a memory 20b, in a multiplier 35b. The multiplication product, supplied via the line 21b to the adder 22, represents the amplitude F" of the currently evaluated, high order harmonic component.

Thus during each amplitude computation cycle t the values F" =C,, sin (1r/W) nqR for n l,2,3,...,W/2 are calculated successively in the channel 13a upon occurrence of successive clock pulses t Concurrently,

I the high order harmonic components F" for values n (W/2 l), (W/2 -l- 2) W are calculated in the channel 13b. 7 I

Thus all W Fourier components are calculated in exactly W/P W/2 clock cycles t corresponding to the computation time interval ti. In the embodiment o'f FIG. 1, a clock 41 produces the pulses t on a line 42. A counter 43 of modulo W/2 provides one pulse t on the line 16 for each W/2 pulses t received on the line 42. Using the parallel processingsystemof FIG. 1, the rate f of the clock 4l is equal to W/2't, or exactly onehalf of the clock rate which would be required if all W harmonic components were calculated serially in the computation interval t,.

In the parallel processing computer organ 50 of FIG. 2, the odd harmonic components (n l,3,5,...) are calculated in a first channel 51a, while the even harmonic components (n 246,...) are evaluated concurrently in a second channel 50b. The keyboard switches 12, the frequency number 19, the gate 26' and the note interval adder 25 correspond in operation to the like numbered, but unprimed, components shown in FIG. 1. These components provide on a line 28' a signal representing the value qR identifying the sample point at which the waveshape amplitude currently is being evaluated. Separate harmonic interval adders 52a, 52b are associated with the respective channels 50a, 50b. At successive calculation intervals t the harmonic interval adder 52a is used to accumulate nqR for odd values of n, while the values nqR for even values of n are obtained in the adder 52b. For this purpose, a times two multiplier 53 provides on a line 54 a signal representingthe value 2qR throughout each computation interval t,,.

A clock 41' of frequency f provides calculation clock pulses t on a line 42. A counter 55 of modulo W/2 provides one computation time interval pulse t, on a line 16 for each W/2 pulses t received from the clock 41'. In addition, the counter 52 provides pulses at the calculation clock time r on a line 56a, and at the times r through t on the respective lines 56b 56h. The timing pulses r t all are provided via an OR gate 57 to a line 58.

Upon occurrence of the first calculation clock pulse i the value qR is supplied via a gate 60 to the harmonic interval adder 52a. At Successive clock times 1 through t the value 2qR, supplied from the line 54 via a gate 61, is added to the contents of the harmonic interval adder 52a. Thus at successive clock times t the contents of the adder 52a will contain nqR for odd values of n. A memory address decoder 31a accesses from a sinusoid table 32a the value sin ("rr/W) nqR corresponding to the argument nqR received from the adder 52a. This sin value is multiplied by the appropriate odd harmonic coefficient C, supplied from a memory 20a utilizing a multiplier 35a. The quotient, representing the value F for the corresponding odd value of n, is provided via a line 21a to an adder 22. Accessing of the memory 20a is under control of a memory address control unit 36' advanced by the clock pulses A similar operation occurs in the channel 51b, except that the harmonic interval adder 52b accumulates nqR even values of n. To this end, at each calculation interval t the value 2qR, supplied from the line 54 via a gate 62, is added to the contents of the harmonic interval adder 52b. Amemory address decoder 31b accesses from a sinusoid table 32b the value sin (w/W) nqR corresponding to the argument nqR received from the adder 52b. This sin value is multiplied by the appropriate even harmonic coefficient C from the memory 20b utilizing a multiplier 35b, and the product is supplied via a line 21b to the adder 22'. The adder 22' sums the odd and even harmonic component pair simultaneously evaluated in the parallel channels 51a and 51b, and supplies the sum via a line 23' to an accumulator, digital-to-analog converter and sound system like that shown in FIG. 1.

In the two channel systems of FIGS. 1 and 2, half of the W harmonics are calculated concurrently in each of the parallel processing. Thus in each computation interval t, eight calculation cycles t are'required to calculate l6 (W=16) harmonics.

Additional parallel channels may be employed. For example, four parallel channels may be used, calculating one-fourth of the W harmonic components in each channel. In such instance, the clock frequency f would be one-quarter that required of a single channel system. In general, the clock frequency will be inversely proportional to the number of parallel channels. Nor is there any requirement that the same number of harmonic components be evaluated in each channel; Thus a three channel system may be set up wherefve harmonic components are calculated in one channel, five different components in a second channel, and six other components are evaluated in a third channel. Of course, the calculations all must be done within the time period t,, but the order in which they are performed is not important, since it is merely the sum accumulated in the accumulator 14 (FIG. 1) which represents the amplitude at the waveshape sample point qR and which is gated via the digital-toanalog-converter 17 to the sound system 11.

Nor is the invention limited to the evaluation or the low order harmonics in one channel and high order harmonics in another channel, or to separate, parallel calculation of odd and even harmonics. Indeed any subset of harmonics may be evaluated in either chanwaveshape of the generated musical notes. Thus, it is nel. Parallel processing also maybe employed in systems wherein certain of the components are nonharmonic. Further, although only monophonic instruments are shown in FIGS. 1 and 2, it is clearly to be understood that parallel processing in accordance with the present invention also canbe employed in polyphonic computor organs or like instruments.

The harmonic coefficient memories 20a, 20b (FIG. 1 advantageously may be implemented using recirculating shift registers. Such an arrangement is shown in FIG. 3'wherein a recirculating shift register a The register 65a is shifted one position to the left (as viewed'in FIG. 3) at each clock pulse t supplied on the line 16. As such shifting occurs, the coefficient value present in the end register position 66a is transferred via a line 67a, certain load circuitry 68a, and a line 69a back to the position 70a at the other endof the shift register 65a. The shift register 65b issimilarly con-' nected. I

With this arrangement, uponoccurrence of the first clock pulse (r for a particular calculation cycle, the coefficient C, will be available via the line 71a to the harmonic amplitude multiplier 35a, and the coefficient C will be supplied to the multiplier 35b via a line 71b. When the next pulse (1 occurs, the recirculating registers 65a, 65b will shift one position to the left, so that the respective coefficients C and C are supplied via the lines 71a, 71bto the multipliers 35a, 35b. This operation continues throughout the computation cycle, until all of the harmonic coefficients stored in the registers 65a, 65b are supplied to the multipliers 35a, 35b. As discussed earlier, the next computation cycle (for an incremented value of'qR) begins immediately, and again the stored coefficients are supplied from the registers 65a, 65b to the parallel processing organ. The

process continues as long as a selected note is being generated.

Recall that the coefficient values C establish the the value of these coefficients which will determine whether the sounds produced by the computor organ will have the characteristics of e.g., a diapason, a tibia or a bourdon voice. An arrangement for supplying different sets of harmonic coefficients to the shift registers 65a, 65b also is shown in FIG. 3. This arrangement facilitates organ voice selection by the use. of stop tab switches.

To this end, a first set A of harmonic coefficients are maintained in a storage device 73A, and a different set B of coefficients are stored in a memory 738. When the stop tab switch ST, is closed, the coefficients from the storage device 73A are transferred via an adder 74, the lines 75a, 75b and the load circuitry 68a, 68b into the shift registers 65a, 65b. Using the harmonic coefficients A then available in the registers 65a, 65b, the computor organ may e.g., produce a diapason sound.

If the stop tab switch ST, is opened and the switch ST closed, the set B of coefficients maintained in the storage device 73B will be supplied via the adder 74 to the shift registers 65a, 65b. Thereafter, the computer organ will produce a different sound, for example, a tibia, established by the coefficient set B. The arrangement of FIG. 3 also permits'use of combined voices. Thus if both stop tab switches ST, and ST are closed, the coefficient sets A and fB will be summed by the adder 74, and the combined coefficients supplied via the load circuitry 68a, 68b to the shift registers 65a, 65b. As a result, the organ will produce a sound representative of the combined selected stops.

Of course, additional stops may be implemented using other storage devices (not shown), together with appropriate selection switches and combining circuitry.

Illustrative means for transferring coefficients from the storage device 73A or 738 to the recirculating shift registers 65a, 65b is shown in FIGS. 3 and 4, and by the timing diagram of FIG. 5. In this arrangement, individual coefficients are transferred during successive computation cycles, so that when a new stop tab is selected, the change in voice occurs gradually over approximately W/2 time intervals This changeover time is sufficiently rapid so as to be unobjectionable to a listener.

In the arrangement shown, a counter 76 of modulo (W/2 l receives the calculation clock pulses t from the line 16. The counter 76 provides one .LOAD pulse on a line 77 for each (W/2 l) pulses i received from the clock 41. The LOAD pulses advance a storage access control unit 78 which causes successive harmonic coefficients to be read from the selected storage device 73A or 738. Each LOAD pulse also causes the accessed coefficients to be transferred by the load-circuitry 68a, 68b onto the lines 69a, 69b in place of the coefficinets previously in the shift register end positions 66a, 66b. Thus, on occurrence of each LOAD pulse, a new harmonic coefficient is transferred into each shift register 65a and 65b. The process is repeated until all of the coefficients from the selected storage device 73a, 73b have been transferred.

The load circuitry 68a, 68b may be implemented using the circuit shown in FIG. 4. There, a three-input AND gate 81 receives as inputs the signal from the end shift register position 66a, the shift pulses t from the line 16, and the output of an inverter 82 which receives the LOAD pulses from the line 77. g When no LOAD pulse is present on the line 77, the output of the inverter 82 is high. In this instance, the AND gate 81 transfers the coefficient signal from the line 67a onto the line 69a each time a shift pulse t is received. Recirculation is implemented.

Upon occurrence of a LOAD pulse on the line 78,

i the output of the inverter 82 will be low, disabling the AND gate 81 and hence inhibiting recirculation of the coefficient received from the. register position 66a. However, the LOAD signal enables another AND gate 83 which transfers the new harmonic coefficient supplied via the line 75a onto the line 69a. As a result, the new coefficient value will be entered into the register end position 70a instead of the value previously in the register position 66a. When this process is repeated W/2 times, all of thenew coefficients will be present in the shift registers 65a, 65b.

The LOAD pulses need not be inhibited after all of the new coefficients have been transferred into the registers 65a, 65b. The reason is that on successive cycles, at the time of each LOAD pulse occurrence, the coefficient supplied on the line a will be'identical to that present on the line'67a from the position 66a. As a consequence, the signal returned on the line 69a will be identical to that which would have been recirculated if the LOAD pulse had been'inhibited.

The timing diagram of FIG. 5 illustrates the shift register 65a, 65b reloading process. In the example, the shift registers initially contain the coefficients C through C of the set A. The stop tab ST is selected at the time designated by the arrow 35. During the next computation cycle, the coefficient C and C of the newly selected set B are transferred by the load circuitry 68a, 68b to the shift registers 65a, 65b. During the following computation cycle, at a time (W/2 I) t after transfer of the coefficients C C the next coefficients C and C are loaded into the registers. This procedure is iterated until all coefficients of the set B have been loaded.

Other timing arrangements may be used for transfer of harmonic coefficients into the shift registers 65a, 65b. Note also that each coefficient C, may be represented by a multi-bit binary number. In such instance, each shift register position would contain a byte equal to the number of bits representing each coefficient. Additional circuits like that of FIG. 4 may be employed for each bit.

Selection of the coefficient values C, is a design choice. By way of example, the storage devices 73A, 738 may contain the sets of coefficients listed in TABLE 1 below and associated with typical pipe organ sounds. Decimal values of the coefficients are listed. In a digital computor organ, these values typically would be. stored in the equivalent binary form. The listedcoefficients indicate the relative amplitude of each Fourier component; the corresponding decibel values also are tabulated.

TAB LE I Set A" (diapason) Set B (flute) Decibel Decibel Relative equivalent Relative equivalent Coefficient amplitude (db) amplitude (db) I27 0 I27 0 71 5 3 32 3 13 20 36 11 l 42 23 l5 1 42 25 14 l 42 8 -24 1 42 8 '24 0 50 4 -3l 0 50 4 -3l 1 0 50 2 38 0 50 2 38 0 -50 2 38 0 50 l 42 0 50 l 42 O 50 l 0 50 The frequency numbers R stored in the memory 19 are related to the fundamental frequencies of the musical notes produced ,by the computor organ 10, to the computation time interval t and to the number of amplitude sample points N for the note of highest fundamental frequency f produced by the organ. For example, if the frequency number R for such note of highest frequency is selected as unity," then witha computation time interval! given by t, l/Nf exactly N sample point amplitudes will be computed for that note.

The values Rfor notes of lower frequency readily can be ascertained, knowing that the frequency ratio of any two contiguous notes in an equally tempered musical scale is V2. In general, the frequency numbers R for jnotes other than that of highest frequency f will be non-integers.

By way of example, the following Table II lists the frequency, frequency number R, and number of sample points per period for each note in octave six. The note C (the key of C in octave 7) is designated as the note of highest fundamental frequency produced by the computor-organ 10, and hence is assigned the frequency number'R of unity. In this example, N 32 sample points are computed for the note C this value of N being satisfactory for accurate synthesis for an organ pipe or most'other musical sounds.

Thus there is provided a parallel processing computor organ wherein the calculation clock rate is substantially lower than for systemswhich do not employ parallel processing.

Intending to claim all novel, useful and unobvious features shown or described, the applicant makes the following claims:

1. In a muscial instrument of the type wherein the amplitudes of a waveshape are computed for successive waveshape sample points at certain regular time intervals from stored harmonic coefficient values, each amplitude being computed by individually calculating the constituent Fourier components of said waveshape, each Fourier component being calculated by multiplying a trigonometric function of the waveshape sample point by a harmonic coefficient value which establishes the relative amplitude of that Fourier component, at least some of said components being calculated sequentially, said calculated components being combined to obtain the waveshape amplitude at each sample point, musical notes being produced by converting said computed waveshape amplitudes for successive sample points to musical sounds as said computations are carried out, the improvement wherein .said instrument comprises:

a recirculating shift register for storing said harmonic coefficient values, means for shifting said register in unison with said sequential calculations,

12 means-for accessing from said register the harmonic coefficient associated with the Fourier component currently being calculated, and,

a multiplier for multiplying said trigonometric function by said accessed harmonic coefficient to obtain the calculated Fourier component value.

2. A musical instrument according to claim 1 further comprising;

one or more storage devices each containing a set of harmonic coefficients associated with a particular instrument voice, and

means for transferring a selected set of said coefi'icients from one of said storage devices into said recirculating shift register.

3. A musical instrument according to claim 2 wherein said means for transferring transfers individual coefficients into said register during successive ones of said certain intervals. I 7' 4. A musical instrument according to claim 2 wherein said means for transferring includes load circuitry which transfers individual coefficients into said register during successive ones of said certain intervals.

5. A musical instrument according to claim 2 wherein said means for transferring includes an adder circuit which combines the coefficients of two or more sets, the combined coefficients being transferred into said recirculating shift register. 2

6. A musical instrument comprising;

two or more parallel processing channelsfor calculating within a regular time interval t, respective difierent subsets of Fourier components F associated with the amplitude X,,(qR) of a musical waveshape at a certain sample point, each compo-. nent F" being calculated according to the equation wherein C,, is a coefficient associated with the n".

harmonic wherein qR designates said certain sample point and wherein Wis the number of components calculated to obtain each amplitude,

means for providing to each of said parallel processing channels signals representingthe values nqR for the subset of Fourier components calculated in sive to the values nqR provided to that processing channel, and utilizing said memory and said sinuysoid table to calculate F '"=C,,sin (rr/W) nqR for each of the Fourier components calculated in that processing channel, I an accumulator for combining said calculated Fourier components to obtain the waveshape amplitude X (qR) at said certain sample point according to the relationship where N is the total number of components evaluated for each samplepoint,

control means for causing said processing channels and said accumulator to perform said calculating and combining operations repetitively for successive sample points during successive regular time intervals t and converter means for producing musical sounds from said obtained amplitudes as said calculating and combining are carried out in real time.

7. An instrument according to claim 6 wherein low order harmonic components having the values r; l,2,3,... W/2 are calculated in one channel and high order harmonic components having the values n (W/Z l), (W/Z 2),...; W are calculated in another, parallel channel, and wherein said means for providing comprises:

a keyboard,

a frequency number memory storing values of R for selectable notes, a certain value R being accessed from said memory upon actuation ofa corresponding key on said keyboard,

a note interval adder incremented by-the selected value R at the beginning of each interval t the content of said note interval adder representing the value qR,

a harmonic interval adder cleared before each interval t, and incremented by the value qR during successive calculation subintervals within each interval 1,, the contents of said harmonic interval adder representing the values nqR for n l,2,3,... W/2, signals representing said values being provided to said one channel, multiplier for multiplying the value 'qR from said note interval adder by (W/2) to obtain the value (W/2) qR throughout said interval t,, and an adder for adding the value (W/2) qR from said multiplier to the currently available value nqR for n l ,2,...,W from said harmonic interval adder and for providing the sum to said other channel.

8. An instrumentaccording to claim 6 wherein odd harmonic components are calculated in one channel and even harmonic components are calculated in another, parallel channel, and wherein said means'for providing comprises:

a keyboard, a frequency number memory storing values of R for selectable notes, a certain value R being accessed from said memory upon actuation of a correspond ing key on said keyboard, a note interval adder incremented by the value R at the beginning of each interval t the content of said note interval adder representing the value qR,

first and second harmonic interval adders each cleared before each interval t means for loading the value qR from said note interval adder into the first harmonic interval adder and the value 2qR into the second harmonic interval adder during the first calculation subinterval within said interval t and means for adding the value 2qR to the contents of each harmonic interval adder at each subsequent calculation subinterval within said interval t signals representing the contents of said harmonicinterval adders being provided respectively to said parallel processing channels.

9. An instrument according to claim 6 wherein each harmonic coefficient memory comprises a recirculating shift register shifted in unison with successive Fourier component calculations in that channel.

10. An instrument according to, claim 6 wherein said control means comprises:

a clock providing timing pulses at harmonic component calculation subintervals t and a counter receiving said clock timing pulses and providing one computation interval pulse t, for each W/P subinterval pulses t received thereby, wherein W is the total number of Fourier components calculated to obtain said amplitude, and P is the number of parallel channels. 

1. In a muscial instrument of the type wherein the amplitudes of a waveshape are computed for successive waveshape sample points at certain regular time intervals from stored harmonic coefficient values, each amplitude being computed by individually calculating the constituent Fourier components of said waveshape, each Fourier component being calculated by multiplying a trigonometric function of the waveshape sample point by a harmonic coefficient value which establishes the relative amplitude of that Fourier component, at least some of said components being calculated sequentially, said calculated components being combined to obtain the waveshape amplitude at each sample point, musical notes being produced by converting said computed waveshape amplitudes for successive sample points to musical sounds as said computations are carried out, the improvement wherein said instrument comprises: a recirculating shift register for storing said harmonic coefficient values, means for shifting said register in unison with said sequential calculations, means for accessing from said register the harmonic coefficient associated with the Fourier component currently being calculated, and, a multiplier for multiplying said trigonometric function by said accessed harmonic coefficient to obtain the calculated Fourier component value.
 2. A musical instrument according to claim 1 further comprising; one or more storage devices each containing a set of harmonic coefficients associated with a particular instrument voice, and means for transferring a selected set of said coefficients from one of said storage devices into said recirculating shift register.
 3. A musical instrument according to Claim 2 wherein said means for transferring transfers individual coefficients into said register during successive ones of said certain intervals.
 4. A musical instrument according to claim 2 wherein said means for transferring includes load circuitry which transfers individual coefficients into said register during successive ones of said certain intervals.
 5. A musical instrument according to claim 2 wherein said means for transferring includes an adder circuit which combines the coefficients of two or more sets, the combined coefficients being transferred into said recirculating shift register.
 6. A musical instrument comprising: two or more parallel processing channels for calculating within a regular time interval tx respective different subsets of Fourier components F(n) associated with the amplitude Xo(qR) of a musical waveshape at a certain sample point, each component F(n) being calculated according to the equation F(n) Cn sin ( pi /W) nqR wherein Cn is a coefficient associated with the nth harmonic, wherein qR designates said certain sample point and wherein W is the number of components calculated to obtain each amplitude, means for providing to each of said parallel processing channels signals representing the values nqR for the subset of Fourier components calculated in that processing channel, each processing channel including: a memory storing the harmonic coefficients Cn for the subset of components evaluated in that channel, a sinusoid table comprising a memory storing the values of sin ( pi /W) phi for 0 < or = phi < or = 2W at intervals of D where D is a resolution constant, harmonic components evaluation circuitry, responsive to the values nqR provided to that processing channel, and utilizing said memory and said sinusoid table to calculate F(n) Cnsin ( pi /W) nqR for each of the Fourier components calculated in that processing channel, an accumulator for combining said calculated Fourier components to obtain the waveshape amplitude Xo (qR) at said certain sample point according to the relationship
 7. An instrument according to claim 6 wherein low order harmonic components having the values n 1,2,3,... W/2 are calculated in one channel and high order harmonic components having the values n (W/2 + 1), (W/2 + 2) ,..., W are calculated in another, parallel channel, and wherein said means for providing comprises: a keyboard, a frequency number memory storing values of R for selectable notes, a certain value R being accessed from said memory upon actuation of a corresponding key on said keyboard, a note interval adder incremented by the selected value R at the beginning of each interval tx, the content of said note interval adder representing the value qR, a harmonic interval adder cleared before each interval tx and incremented by the value qR during successive calculation subintervals within each interval tx, the contents of said harmonic interval adder representing the values nqR for n 1, 2,3,... W/2, signals representing said values being provided to said one channel, a multiplier for multiplying the value qR from said note interval adder by (W/2) to obtain the value (W/2) qR throughOut said interval tx, and an adder for adding the value (W/2) qR from said multiplier to the currently available value nqR for n 1,2,...,W from said harmonic interval adder and for providing the sum to said other channel.
 8. An instrument according to claim 6 wherein odd harmonic components are calculated in one channel and even harmonic components are calculated in another, parallel channel, and wherein said means for providing comprises: a keyboard, a frequency number memory storing values of R for selectable notes, a certain value R being accessed from said memory upon actuation of a corresponding key on said keyboard, a note interval adder incremented by the value R at the beginning of each interval tx, the content of said note interval adder representing the value qR, first and second harmonic interval adders each cleared before each interval tx, means for loading the value qR from said note interval adder into the first harmonic interval adder and the value 2qR into the second harmonic interval adder during the first calculation subinterval within said interval tx, and means for adding the value 2qR to the contents of each harmonic interval adder at each subsequent calculation subinterval within said interval tx, signals representing the contents of said harmonic interval adders being provided respectively to said parallel processing channels.
 9. An instrument according to claim 6 wherein each harmonic coefficient memory comprises a recirculating shift register shifted in unison with successive Fourier component calculations in that channel.
 10. An instrument according to claim 6 wherein said control means comprises: a clock providing timing pulses at harmonic component calculation subintervals tcp, and a counter receiving said clock timing pulses and providing one computation interval pulse tx for each W/P subinterval pulses tcp received thereby, wherein W is the total number of Fourier components calculated to obtain said amplitude, and P is the number of parallel channels. 